import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class DemoMenu extends JFrame implements ActionListener
{   //"implements ActionListener" indica que debe haber un 
                                                                                                                                          //  metodo actionPerformed (ActionEvent)
	String menuArchivo[]={"Nuevo","Abrir","Guardar","-","Salir"};  
	String iconArchivo[]={"tb_new.gif","tb_open.gif","tb_save.gif","-","tb_exit.gif"};

	String menuEdicion[]={"Copiar","Cortar","Pegar"};  
	String iconEdicion[]={"tb_copy.gif","tb_cut.gif","tb_paste.gif"};

  public DemoMenu()
  {	
    JMenuBar jmb = new JMenuBar();
    
	JMenu archivo = new JMenu ("Archivo");
	archivo.setMnemonic('f');
    for (int i=0; i<menuArchivo.length; i++)
    {
		String opcion=menuArchivo[i];
		if(opcion.equals("-"))
			archivo.addSeparator();
		else
		{  //creo un subMenu
		 String icono="images/"+iconArchivo[i]; 
		 JMenuItem item=new JMenuItem (opcion,new ImageIcon(icono));
		 item.setMnemonic(opcion.charAt(0)); //tecla aceleradora
		 item.setHorizontalTextPosition (JMenuItem.LEFT);
		 item.addActionListener(this);                // Indica que va a utilizar el LISTENER de ella misma, es decir de la misma clase
         archivo.add (item);
        } 
    }//for
	jmb.add (archivo);

	JMenu edicion = new JMenu ("Edicion");
    edicion.setMnemonic('E'); 
    for (int i=0; i<menuEdicion.length; i++)
    {
		 String opcion=menuEdicion[i]; 
		 String icono="images/"+iconEdicion[i]; 
		 JMenuItem item=new JMenuItem (opcion,new ImageIcon(icono));
		 item.setMnemonic(opcion.charAt(0)); //tecla aceleradora
		 item.addActionListener(this);
         edicion.add (item);         
    }//for
	jmb.add (edicion);

    setJMenuBar (jmb);
    
    setTitle ("Menu Example");
    setSize(300,200); 
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
  
   public void actionPerformed(ActionEvent e)
   {
     //Imprime el menu seleccionado
     String opcion=e.getActionCommand();
     System.out.println(opcion);

	 if(opcion.equals("Salir"))
	 	System.exit(0);
     
	 if(opcion.equals("Abrir"))
	 {//Compara si opcion es igual a "Open"
	    JFileChooser jf=new JFileChooser();
	    jf.showOpenDialog(this); //Indica que esta ventana es la ventana padre del dialogo de abrir
	    if (jf.getSelectedFile() != null)
        	System.out.println("Selecciono :"+jf.getSelectedFile().getName());
	 }

	 if(opcion.equals("Guardar"))
	 {
	    JFileChooser jf=new JFileChooser();
	    jf.showSaveDialog(this);
	    System.out.println("Selecciono :"+jf.getSelectedFile().getName());
	 }

  }

  public static void main(String args[])
  {
     new DemoMenu();
  }
}
